ph: pH of 1. water (0 to 14).

Hardness: Capacity of water to precipitate soap in mg/L.

Solids: Total dissolved solids in ppm.

Chloramines: Amount of Chloramines in ppm.

Sulfate: Amount of Sulfates dissolved in mg/L.

Conductivity: Electrical conductivity of water in μS/cm.

Organic_carbon: Amount of organic carbon in ppm.

Trihalomethanes: Amount of Trihalomethanes in μg/L.

Turbidity: Measure of light emiting property of water in NTU.

Potability: Indicates if water is safe for human consumption. Potable - 1 and Not potable - 0

绘制目前数据集的分布图

检查缺失值及处理

从上图可以看到变量PH,Sulfate,Trihalomethanes均存在缺失值

由于水质对微量元素的变化十分敏感,所以不能用均值或者中位数等方法直接进行填充缺失值。最保险的做法是直接删除含有缺失值的数据,删除之后我们仍有十分大的样本来处理数据。

离群值处理

首先绘制处理完缺失值后的分布图

可以看到存在很多离群值,接下来对离群值进行处理,将小于0.01分位数和大于0.99分位数的数据删除

可以看到离群值已基本处理完毕

对数据进行标准化处理

对于ph值,为保留酸碱的信息,先减去7,然后除以最大值减去最小值,以此得到(-1,1)区间的数据,并用正负来区分酸碱

对于其他变量采用z-score标准化处理

数据可视化处理

首先是处理后数据的正例负例的比例情况,约为40%的正例以及60%的负例,这里可以对样本进行平衡处理,但样本本身的正负例比例或许传递了现实中正负例的先验信息,因此在这里将不采取平衡样本

绘制各变量的样本相关系数矩阵及两两之间的散布图

将各变量与饮用性的相关系数比较画出如下: 可以看到各变量与饮用性之间相关性十分低,且上文的相关系数图说明各变量之间的相关性也很低。

一方面说明实验样本的变量选择十分到位,避免了重复信息的收集,另一方面数据本身已基本满足变量间的不相关,因此后续将不展开主成分或主因子的分析

绘制频数直方图如下:

分出训练集、验证集和测试集(6:2:2)供后续分类学习使用:

输出清洗后的数据集